import { IPSAppDELogic } from '../../app/dataentity/ipsapp-delogic';
import { IPSAppDataEntity } from '../../app/dataentity/ipsapp-data-entity';
import { IPSDEUILogicNode } from './ipsdeuilogic-node';
import { IPSDEUILogicParam } from './ipsdeuilogic-param';

/**
 *
 * 继承父接口类型值[DELOGIC]
 * @export
 * @interface IPSDEUIDELogicLogic
 */
export interface IPSDEUIDELogicLogic extends IPSDEUILogicNode {
  /**
   * 应用实体逻辑对象
   *
   * @type {IPSAppDELogic}
   */
  getDstPSAppDELogic(): IPSAppDELogic | null;

  /**
   * 应用实体逻辑对象
   *
   * @type {IPSAppDELogic}
   */
  get dstPSAppDELogic(): IPSAppDELogic | null;

  /**
   * 应用实体逻辑对象（必须存在）
   *
   * @type {IPSAppDELogic}
   */
  getDstPSAppDELogicMust(): IPSAppDELogic;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  getDstPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象
   *
   * @type {IPSAppDataEntity}
   */
  get dstPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 应用实体对象（必须存在）
   *
   * @type {IPSAppDataEntity}
   */
  getDstPSAppDataEntityMust(): IPSAppDataEntity;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  getDstPSDEUILogicParam(): IPSDEUILogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  get dstPSDEUILogicParam(): IPSDEUILogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDEUILogicParam}
   */
  getDstPSDEUILogicParamMust(): IPSDEUILogicParam;

  /**
   * 返回值绑定逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  getRetPSDEUILogicParam(): IPSDEUILogicParam | null;

  /**
   * 返回值绑定逻辑参数对象
   *
   * @type {IPSDEUILogicParam}
   */
  get retPSDEUILogicParam(): IPSDEUILogicParam | null;

  /**
   * 返回值绑定逻辑参数对象（必须存在）
   *
   * @type {IPSDEUILogicParam}
   */
  getRetPSDEUILogicParamMust(): IPSDEUILogicParam;
}
